﻿import flash.net.FileReference;
import flash.net.URLVariables;
import mx.controls.Alert;
import mx.managers.PopUpManager;

[Bindable]
private var archivos : XML;

[Bindable]
public var contenido : XML;

[Bindable]
public var preview : String;

[Bindable]
public var versiones : XML;

public function cambiarContenido(c : XML) : void {
	contenido = c;
	
	refrescar();
}

private function subirArchivos() : void {
	if (contenido != null) {
		var forma : FormaSubirArchivos = PopUpManager.createPopUp(this.parent, FormaSubirArchivos, true) as FormaSubirArchivos;
		PopUpManager.centerPopUp(forma);
		forma.cambiarContenido(contenido);
		forma.refresh = refrescar;
	}
}

private function refrescar() : void {
	if (contenido == null) {
		visible = false;
	} else {
		archivosHttp.request.contenidoId = contenido.@id;
		archivosHttp.send();
	}
	detalle.visible = false;
}

private function httpError() : void {
	Alert.show("Error al contactar el servidor", "Error");
}

private function archivosResult() : void {
	archivos = archivosHttp.lastResult.archivos[0];
	trace(archivos.toXMLString());
	visible = true;
}

private var fr : FileReference = new FileReference();

private function descargar() : void {
	if (listado.selectedItem != null) {
		var archivo : XML = listado.selectedItem as XML;
		
		var url : URLRequest = new URLRequest();
		var request : URLVariables = new URLVariables();
		request.versionId = archivo.@versionid;
		trace(archivo.@versionid);
		url.data = request;
		url.url = Configuracion.getHost() + "flex-download.php";
		
		fr.download(url, archivo.@nombre);
	}
}

private function elegirArchivo() : void {
	var si : XML = listado.selectedItem as XML;
	versionesHttp.request.archivoId = si.@id;
	versionesHttp.send();
}

private function versionesResult() : void {
	versiones = versionesHttp.lastResult.versiones[0];
	trace(versiones.toXMLString());
	detalle.visible = true;
	
	if (versiones.version.length() > 0) {
		preview = Configuracion.getHost() + "/flex-download-thumb.php?versionId=" + versiones.version[0].@id;
	}
}

private function actualizarPreview() : void {
	var vi : XML = listaVersiones.selectedItem as XML;
	preview = Configuracion.getHost() + "/flex-download-thumb.php?versionId=" + vi.@id;
}

private function descargarVersion() : void {
	if (listaVersiones.selectedItem != null) {
		var archivo : XML = listado.selectedItem as XML;
		var version : XML = listaVersiones.selectedItem as XML;
		
		var url : URLRequest = new URLRequest();
		var request : URLVariables = new URLVariables();
		request.versionId = version.@id;
		url.data = request;
		url.url = Configuracion.getHost() + "flex-download.php";
		
		fr.download(url, archivo.@nombre);
	}
}
